package com.pay.sdk.service.pay;

import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Map;

import com.pay.sdk.common.Configure;
import com.pay.sdk.service.IPostService;
import com.pay.sdk.util.MD5Utils;

public class MsH5Pay extends IPostService{
	
	  private static final String SERVICE_NAME = "api.ms.h5";
	    private static final String SERVICE_VERSION = "1.0";
	    private static final String SERVICE_CHARSET = "UTF-8";
	    private static final String SERVICE_SIGN_TYPE = "MD5";
	  

	    @Override
	    public String exec(Map<String, String> params){
	    	//通用参数
	        params.put("version", SERVICE_VERSION);
	        params.put("charset", SERVICE_CHARSET);
	        params.put("sign_type",SERVICE_SIGN_TYPE);
	        //请求参数
	        params.put("service", SERVICE_NAME);
	        params.put("merchant_no", Configure.getMerchantNo());
	        params.put("out_trade_no", params.get("out_trade_no"));
	        params.put("orderDesc", params.get("orderDesc"));
	        params.put("total_fee", params.get("total_fee"));
	        params.put("body", params.get("body"));
			params.put("notify_url",params.get("notify_url"));
			params.put("acquirer_type", params.get("acquirer_type"));
			params.put("time_expire", params.get("time_expire"));
			params.put("bank_card_limit", params.get("bank_card_limit"));
			params.put("appId",params.get("appId"));
			params.put("uuid",params.get("openid"));
			try {
				params.put("client_ip", InetAddress.getLocalHost().getHostAddress());
			} catch (UnknownHostException e) {
				e.printStackTrace();
			}
			params.put("device_info", params.get("device_info"));
			params = MD5Utils.signMap(params, SERVICE_SIGN_TYPE, Configure.getKey(), SERVICE_CHARSET);
	        
			return txn(Configure.isDevEnv() ? Configure.PAY_GATEWAY_DEV_API : Configure.PAY_GATEWAY_API, params);
	    }

}
